159 research outputs found

    Properties of Concurrent Programs

    Get PDF
    A program property is a predicate on programs. In this paper we explore program properties of the form U -> V where U and V are either predicates on states of a program or program properties, and -> satisfies three rules that are also used in reasoning about sequential programs and safety properties of parallel programs. We show how such properties can be used to reason about concurrent programs

    Systematic composition of distributed objects: Processes and sessions

    Get PDF
    We consider a system with the infrastructure for the creation and interconnection of large numbers of distributed persistent objects. This system is exemplified by the Internet: potentially, every appliance and document on the Internet has both persistent state and the ability to interact with large numbers of other appliances and documents on the Internet. This paper elucidates the characteristics of such a system, and proposes the compositional requirements of its corresponding infrastructure. We explore the problems of specifying, composing, reasoning about and implementing applications in such a system. A specific concern of our research is developing the infrastructure to support structuring distributed applications by using sequential, choice and parallel composition, in the anarchic environment where application compositions may be unforeseeable and interactions may be unknown prior to actually occurring. The structuring concepts discussed are relevant to a wide range of distributed applications; our implementation is illustrated with collaborative Java processes interacting over the Internet, but the methodology provided can be applied independent of specific platforms

    A Primer for Program Composition Notation

    Get PDF
    This primer describes a notation for program composition. Program composition is putting programs together to get larger ones. PCN (Program Composition Notation) is a programming language that allows programmers to compose programs so that composed programs execute efficiently on uniprocessors, distributed-memory multicomputers or shared-memory multiprocessors. (Revised December 12, 1990

    Mach-Based Channel Library

    Get PDF
    [No Abstract

    The Impact of Sense and Respond Systems

    Get PDF
    Sense and respond (S&R) systems based on information technology amplify one of the most fundamental characteristics of life — the ability to detect and respond to events. Living things thrive when they respond effectively to what’s going on in their environments. A zebra that doesn’t run away from a hungry lion dies and one that runs away unnecessarily wears out. Organizations sense and respond collectively: lions in a pride signal each other when they hunt; societies deal with crises by harnessing capabilities of governments, charities, and individuals. When our ancestors hunted millennia ago, they saw as far as the eye could see and threw spears as far as their muscles let them. Today, S&R systems let us detect events far out in space and respond anywhere on the globe. By 2020, S&R systems will become an integral part of the activities of people and organizations around the world whether they’re rich or poor, in farming or medicine, at work or at play

    Conjunctive Predicate Transformers for Reasoning about Concurrent Computation

    Get PDF
    In this paper we propose a calculus for reasoning about concurrent programs inspired by the wp calculus for reasoning about sequential programs. We suggest predicate transformers for reasoning about progress properties and for deducing properties obtained by parallel composition. The paper presents theorems about the predicate transformers and suggests how they can be used in program design. Familiarity with the wp calculus is assumed

    Towards a Compositional Approach to the Design and Verification of Distributed Systems

    Get PDF
    We are investigating a component-based approach for formal design of distributed systems. In this paper, we introduce the framework we use for specification, composition and communication and we apply it to an example that highlights the different aspects of a compositional design, including top-down and bottom-up phases, proofs of composition, refinement proofs, proofs of program texts, and component reuse

    Examples of Program Composition Illustrating the Use of Universal Properties

    Get PDF
    This paper uses a theory of composition based on existential and universal properties. Universal properties axe useful to describe components interactions through shared variables. However, some universal properties do not appear directly in components specifications and they must be constructed to prove the composed system. Coming up with such universal properties often requires creativity. The paper shows through two examples how this construction can be achieved. The principle used is first presented with a toy example and then applied to a more substantial problem

    How processes learn

    Get PDF
    Processes in distributed systems communicate with one another exclusively by sending and receiving messages. A process has access to its state but not to the states of other processes. Many distributed algorithms require that a process determine facts about the overall system computation. In anthropomorphic terms, processes "learn" about states of other process in the evolution of system computation. This paper is concerned with how processes learn. We give a precise characterization of the minimum information flow necessary for a process to determine specific facts about the system

    Conditional Knowledge as a Basis for Distributed Simulation

    Get PDF
    A goal of this paper is to explore different ways of implementing distributed simulations. Distributed simulation grew out of sequential simulation, and it is possible that the way we think about distributed simulation is unduly influenced by its sequential origins. To free ourselves from unnecessary restrictions on the way we design distributed simulations, in this paper we define the distributed simulation problem somewhat differently than in the literature. We propose the concepts of "knowledge" and "conditional knowledge", to help us obtain a general framework to reason about distributed simulations without too close a coupling with any specific implementation method. The framework appears helpful in designing new ways of distributed simulations. Empirical studies of distributed simulations report widely varying results: some studies report improvements in speed that are almost linearly proportional to the number of computers in the system, while other studies report that distributed simulation is even slower than sequential simulation. The framework proposed in this paper seems to help in explaining the wide differences observed in empirical studies. Using our framework, we attempt to suggest properties that efficient "general-purpose" distributed discrete-event simulations must have. The paper assumes little prior knowledge of the literature on simuIation or distributed systems. We hope that the paper will serve as a tutorial in addition to providing additional insight
    • …
    corecore